package com.glorystone.ins.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author:haoguodong
 * @Date:Created in 16:27 2018/3/26
 * @since: JDK 1.7
 * @projectName:IntelliJ IDEA
 * @Description:类功能描述
 */
public @Data
class Endpaying {

    private Long tid;

    //保单号

    private String ordNum;

    //付款主体

    private String ordCode;

    //渠道

    private Long channelId;

    private Integer channelType;

    private Integer channelStatus;

    private Integer channelTBStatus;

    private String channelCName;

    private String channelPName;

    private String channelPhone;

   // 保险公司ID

    private Long insyrerId;

    private String insyrerName;
    private Integer typeInvestment;
    //产品ID

    private Long productId;

    //被保险人

    private String insurant;

    //被保险人证件号

    private String orgIdCode;

   //投保人

    private String applicant;

    //车主姓名

    private String carOwner;

    private String phone;

    //车牌号

    private String plateNum;

    //车辆类型

    private Integer vehicleType;

    private String preInsyrer;

    private Integer status;

    //车架号
    private String frameNumber;

    //发动机号

    private String engineNum;

    // 垫资类型

    private Integer 垫资类型;

    //垫子到期日

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate insyrerMaturityDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate surrenderDate;

    //垫资账期
    private Integer laonAccount;

    //起保日期

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate insureStartDate;

    //止保日期

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate insureEndDate;

   //保险期限
    private Integer insureOverTime;

    //跟单员

    private Long saleman;

    private String salemanName;

    //险种
    private Integer typeInsurance2;

    //投保类型

    private Integer typeInsurance;

    //商业险保费

    private BigDecimal mercialPremium;

    //交强险保费

    private BigDecimal pulsoryPremium;

    //车船税
    private BigDecimal vechcleVesselTax;

    //全保费
    private BigDecimal allPremium;

    //税后保费
    private BigDecimal texPremium;

    //出单日期

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate dateIssuance;

    //付款主体

    private Integer paySubject;

    //跟单点位
    private BigDecimal followPoint;

    //补单点位

    private BigDecimal replenishPoint;

    //渠道返点

    private BigDecimal channelRebate;

    //创建人

    private Long createBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate createDate;

    private Long updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate updateDate;

    private Integer delFlag;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate datePolicy;


    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate expireDate;




    private Long capitalTid;

    //订单ID
    private Long ordId;
    //应收付保费
    private BigDecimal mustPremium;
    //实收付保费
    private BigDecimal realPremium;
    //核对实收保费
    private BigDecimal checkPremium;

    //实收保费核对结果
    private Integer checkPremiumResult;

    //应收返返点
    private BigDecimal mustRebateAmt;
   //实收返返点
    private BigDecimal realRebateAmt;
    //跟单手续费
    private BigDecimal followRpoundage;
   //核对跟单点位
    private BigDecimal chechFollowRpoundage;
    //跟单点位核对结果
    private Integer chechFollowResult;
    //补点手续费
    private BigDecimal replenishRpoundage;
   //补点点位核对
    private BigDecimal checkReplenishRpoundage;
   //补点点位核对结果
    private Integer checkReplenishResult;
//付保险公司金额
    private BigDecimal payInsurerAmt;
//付款状态
    private Integer capitalStatus;
//对手方
    private Integer opponent;
//交易类型
    private Integer tradeType;

 //资金来源

    private Integer capitalSourcr;

//核对结果

    private Integer checkResult;

//核对时间

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate checkDate;

    //开票时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate ticketOpenTime;

    private Integer isTicketOpen;

    private BigDecimal invoiceValue;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate receiptDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate payDate;

    private BigDecimal insureMustRebateAmt;

    private BigDecimal insureMustPremium;

    private BigDecimal insureRealPremium;

    private String remark;

    private Long capitalUpdateBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate capitalUpdateDate;

    private Long capitalCreateBy;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate capitalCreateDate;


    private String dateIssuanceStart;
    private String dateIssuanceEnd;
    private String surrenderDateStart;
    private String surrenderDateEnd;



}
